package com.dly.blog.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serial;
import java.io.Serializable;

import com.dly.blog.enums.FileState;
import com.dly.blog.enums.FileType;
import com.dly.blog.enums.UploadType;
import com.dly.blog.meta.MetaObject;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 
 * @TableName blog_file
 */
@TableName(value ="blog_file")
@Data
@EqualsAndHashCode(callSuper = true)
public class File extends MetaObject implements Serializable {

    @TableId
    private String id;

    /**
     * 文件名称
     */
    private String fileName;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 文件路径
     */
    private String filePath;

    /**
     * 文件大小
     */
    private Long fileSize;

    /**
     * 文件分类
     */
    private FileType fileClazz;

    /**
     * 上传类型
     */
    private UploadType uploadType;


    /**
     * 有效期限  永久为 -1
     */
    private Integer expirationDate;

    /**
     * 是否有效
     */
    private FileState fileState;


    /**
     * 访问路径
     */
    private String url;

    @Serial
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}